﻿#define _CRT_SECURE_NO_WANINGS 1
#pragma warning(disable: 4996)
#include<stdio.h>
#include<math.h>
//使⽤C语⾔写⼀个程序打印 1~100之间的奇数，要求输出的数字中间加上空格。
//int main()
//{
//	for (int i = 1; i <= 100; i++)
//	{
//		if (i % 2 == 1)
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}方法二跳数字法
//void odd()
//{
//	for (int i = 1; i <= 100; i  = i +2)
//	{
//		printf("%d ",i);
//	}
//}打印9*9乘法⼝诀表
//void multab()
//{
//	for (int i = 1; i <= 9; i++)
//	{
//		for (int j = 1; j <= i; j++)
//		{
//			printf("%d * %d = %2d ", i, j, i * j);
//		}
//		printf("\n");
//	}
//	
//}打印素数方法1
//void prinum()
//{
//	int i = 0;
//	
//	for (i = 101; i <= 200; i+=2)
//	{
//		int flag = 1;
//		for (int j = 2; j <= sqrt(i); j++)
//		{
//			if (i % j == 0)
//			{
//				flag = 0;
//				break;
//			}
//			
//		}
//		if (flag == 1)
//		{
//			printf("%d ", i);
//		}
//		
//	}
//}判断三⻆形
//void jgtriangle(int a,int b,int c)
//{
//	if ((a + b > c) && (b + c > a) && (a + c > b))
//	{
//		if (a == b && b == c)
//		{
//			printf("congruent triangle\n");
//		}
//		else if (a == b || a == c || b==c)
//		{
//			printf("isosceles triangle\n");
//		}
//		else
//		{
//			printf("common triangle\n");
//		}
//	}
//	else
//	{
//		printf("not a triangle\n");
//	}
//}计算最⼤公约数
//void maxdiv(int a, int b)
//{
//	if (a > b)
//	{
//		for (int i = b; i > 0; i--)
//		{
//			if ((a % i == 0) && (b % i == 0))
//			{
//				printf("%d ", i);
//				break;
//			}
//		}
//	}
//	else
//	{
//		for (int i = a; i > 0; i--)
//		{
//			if ((a % i == 0) && (b % i == 0))
//			{
//				printf("%d ", i);
//				break;
//			}
//		}
//	}
//}辗转相除法
void maxdiv(int a, int b)
{
	int c = 0;
	while (c = a % b)
	{
		a = b;
		b = c;
	}
	printf("%d ", b);

}
int main()
{
	int a = 0 , b = 0, c = 0;
	scanf("%d%d", &a, &b);
	maxdiv(a, b);
	return 0;
}